home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Utilities / Dismount / Dismount.e < prev    next >
Text File  |  1993-06-23  |  2KB  |  56 lines

  1. /* Dismount util by Jaca/Dreamolers-CAPS  
  2. **        PUBLIC DOMAIN SOFTWARE          
  3. **   Contact: jacadcaps@poczta.onet.pl    
  4. **    Homepage: jacadcaps.tripod.com      
  5. **
  6. ** Dreamolers-CleverAmigantsPolishSociety 
  7. **                product
  8. */
  9.  
  10. OPT 020
  11.  
  12. MODULE 'dos/dos','exec/nodes','dos/dostags','dos/dosextens','exec/ports','exec/tasks'
  13.  
  14. DEF name[300]:STRING,buf[350]:STRING,dp:PTR TO devproc,task:PTR TO process,name2[300]:STRING
  15. DEF myarg[1]:ARRAY OF LONG,rdargs,lock:PTR TO LONG
  16. DEF e
  17.  
  18. PROC main()
  19. task:=FindTask(0);task.windowptr:=-1; ->do not open requesters
  20. IF rdargs:=ReadArgs('VOL=DEV/A',myarg,NIL)
  21.     dp:=GetDeviceProc(myarg[0],NIL)
  22.   IF dp<>0
  23.     task:=dp.port.sigtask
  24.     StringF(name,'\s:',task.task.ln.name)
  25.     FreeDeviceProc(dp)
  26.     IF StrLen(name)>1
  27.       UpperStr(name);CopyMem(myarg[0],name2,StrLen(myarg[0])+1);UpperStr(name2)
  28.       IF StrCmp(name2,name,ALL)
  29.         lock:=Lock(myarg[0],ACCESS_READ)
  30.         IF lock<>0
  31.           NameFromLock(lock,name,300)
  32.           UnLock(lock)
  33.         ELSE; ->no VOLUME mounted (remove the drive only!)
  34.           StringF(name,'')
  35. ->          IF IoErr()=ERROR_NO_DISK
  36. /* removed since CacheCDFS returns "not a dos disk" error when **
  37. ** I want to lock an audio CD                                  */
  38.             StringF(buf,'assign >NIL: \s dismount remove',myarg[0])
  39.             Execute(buf,0,0)
  40. ->          ENDIF
  41.         ENDIF
  42.       ENDIF
  43.       IF StrLen(name)>0
  44.         StringF(buf,'assign >NIL: \s dismount remove',name)
  45.         Execute(buf,0,0)
  46.         StringF(buf,'assign >NIL: \s dismount remove',myarg[0])
  47.         Execute(buf,0,0)
  48.       ENDIF
  49.     ENDIF
  50.   ELSE;WriteF('Unable to GetDeviceProc!\n');ENDIF
  51.   FreeArgs(rdargs)
  52. ENDIF
  53. ENDPROC
  54.  
  55. vers: CHAR '$VER: Dismount 1.3 (23.06.01) ©2001 Dreamolers-CAPS'
  56.